1. Field of the Invention
The present invention relates to a system and a method for a secondary level cache for storage area networks.
2. Background Art
A storage area network (SAN) is a network that interconnects data storage devices with respective user host computers that are usually configured as servers. SANs usually include tasks or operations such as disk mirroring, data backup and restore operations, archival and retrieval operations, data migration between storage devices, and data sharing.
Referring to FIG. 1, a diagram illustrating an example of a conventional storage area network (SAN) 10 is shown. The SAN 10 includes a number of hosts 12a-12n coupled to a virtualization layer 14 through a bus 15. Each host 12 typically includes a local cache (not shown). The layer 14 includes a number of virtual data storage devices 16a-16n each of which is coupled to the bus 15. In some conventional SANs, the layer 14 or each virtual device 16 includes interface hardware, operational memory, a local cache, and a microcontroller (not shown). When a conventional SAN 10 is implemented having more than one local cache, each local cache is independent (i.e., not coupled to any other local cache). The layer 14 (i.e., the virtual devices 16) is coupled to a interconnection fabric/bus 18 using the virtual device 16 interface hardware. The fabric/bus 18 provides interconnections to a number of physical data storage disks 20a-20q. The number of virtual devices 16 can be but is not necessarily equal to the number of physical data storage devices (or disks) 20 (i.e., the number n may or may not equal the number q). The virtual disks that are implemented in the virtual devices 16 are implemented containing data (or information) from any of the physical devices 20 depending on what range of data blocks (i.e., a respective address block or range of address blocks) is defined in the respective virtual device 16.
In conventional storage area networks such as the SAN 10, when a write/read block request (or any other data transfer request) is made from a host 12 (e.g., host 12x, not shown), first the local cache (i.e., a single level cache located at the host 12x, the layer 14 or the respective virtual device 16x, not shown) is checked (i.e., interrogated, etc.) to determine if the data blocks that correspond to the request are within the cache. When the blocks that correspond to the request are not in the local (or single level) cache, the SAN 10 accesses and writes/reads the corresponding data to/from (i.e., transfers data to/from) the corresponding physical device 20 (e.g., a device 20y, not shown). Thus, when the SAN 10 accesses a physical device 20, there is an inherent delay in the SAN 10 due to the time interval required to first determine whether the blocks that correspond to the request are within the cache, and then access and perform the data transfer between the physical device 20 and the requesting host 12. As a result, when a host 12 performs an operation that accesses a physical device 20 additional latency is introduced and the overall performance of the SAN 10 is degraded.
Thus, there exists a need and an opportunity for a system and a method to improve SAN performance.